package com.ellwood.dataMapper.system.entity;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fhs.core.trans.vo.TransPojo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
import lombok.experimental.Accessors;

import java.io.Serial;
import java.io.Serializable;
import java.util.Date;

/**
 * @ProjectName: ellwood-pro
 * @PackageName: org.ellwood.modules.system.entity
 * @ClassName: OperateLogEntity
 * @Description: // 系统操作日志记录表
 * @Author: Ellwood
 * @CreateDate: 2024/2/21 - 13:43
 * @Version: V1.0.0
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
@ToString
@TableName("sys_operate_log")
public class OperateLogEntity implements Serializable, TransPojo {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 日志ID
     */
    @TableId("oper_log_id")
    private Long operLogId;

    /**
     * 模块标题
     */
    private String operTitle;

    /**
     * 业务类型 0:其它 1:新增 2:修改 3:删除
     */
    private Integer businessType;

    /**
     * 方法名称
     */
    private String operMethod;

    /**
     * 请求方式
     */
    private String operRequestMethod;

    /**
     * 操作类别 0:后台用户 1:手机端用户 2:其它
     */
    private Integer operType;

    /**
     * '操作人员
     */
    private String operName;

    /**
     * 部门名称
     */
    private Integer deptId;

    /**
     * 请求URL
     */
    private String operUrl;

    /**
     * 主机地址
     */
    private String operLocationIp;

    /**
     * 操作地点
     */
    private String operAddress;

    /**
     * 请求参数
     */
    private String operParam;

    /**
     * 返回参数
     */
    private String operJsonResult;

    /**
     * 操作状态 0:正常 1:异常
     */
    private Integer operState;

    /**
     * 错误消息
     */
    private String operErrorMsg;

    /**
     * 操作时间
     */
    @TableField(fill = FieldFill.INSERT)
    private Date operTime;

    /**
     * 消耗时间
     */
    private Long costTime;

}
